package la.iok.hzsvn.lewin.movie.operation.model;

import java.util.Date;

public interface ChargeOrderInfo {
    /**
     * 充值金额，单位为分
     * @return 充值金额
     */
    Integer getAmount();

    /**
     * 充值金额的字符串表示
     * @return 金额的字符串
     */
    String amountStr();

    /**
     * 充值描述
     * @return 描述信息
     */
    String description();

    /**
     * 订单id.发送到第三方支付系统中的id。三方视角中当前系统所有支付订单的订单id应该唯一
     * @return 订单id
     */
    String orderId();

    /**
     * 设置状态
     * @param state 状态值
     */
    void setState(Integer state);

    /**
     * 查询状态
     * @return 订单状态
     */
    Integer getState();

    /**
     * 设置订单结束时间。一般从支付系统中查询返回
     * @param endTime 结束时间
     */
    void setEndTime(Date endTime);

    /**
     * 查询结束时间
     * @return 结束时间
     */
    Date getEndTime();

    boolean success();

    boolean closed();
}
